from ch1_binary_search import binary_search as bs
from ch2_select_sort import select_sort as ss
from ch3_recursion import recursion as rr
from ch4_quick_sort import quick_sort as qs
from ch4_quick_sort import merge_sort as ms
from ch5_hash_table import hash_table as ht
from ch6_breadth_first_search import breadth_first_search as bf
from ch7_dijkstra_algorithm import directed_acyclic_graph as dag

if __name__ == '__main__':
    # list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    # list2 = [8, 7, 0, 4, 3, 6, 1, 2, 9, 5, 0, 3, 1]
    # result = bs.binary_search(list1,10)
    # result2 = bs.binary_search_recursive(list1,5,0,len(list1)-1)
    # a = dict()
    # list2 = ss.select_sort(list2)
    # print(list2)
    # print(rr.factorial(3))
    # print(qs.quick_sort(list2))
    # qs.quick_sort_partition(list2, 0, len(list2)-1)
    # res = ms.merge_sort(list2)
    # print(res)

    t = ht.ChainHashTable(10)
    t.insert(100,"123")
    print(t.search(100))



